<?php
namespace example\singleton;
class Singleton
{
    /**
     * @var
     * 私有的静态成员变量
     */
    private static $db;
    /**
     * Singleton constructor.
     * 将默认的构造函数私有化，防止外部类通过new实例化
     */
    private function __construct(){}
    /**
     * @return static
     * 提供给外部的访问方法
     */
    public static function getObj () {
        if (!self::$db) {
            self::$db = new static();
        }
        return self::$db;
    }
    /**
     * 防止外部类克隆
     */
    private function __clone() {}

    /**
     * @return string
     * 业务逻辑
     */
    public function query () {
        return "select * from user";
    }
}
